export const drawTool = [
    {
        id: 100,
        label: '组态控件',
        index : -1,
        children: [
            { id: 0, label: '文本', index : 0, sicon : "text.svg" },
            { id: 1, label: '矩形', index : 1, sicon : "rect.svg" },
            { id: 2, label: '直线', index : 2, sicon : "line.svg" },
            { id: 3, label: '圆形', index : 3, sicon : "ellipse.svg" },
        ],
    },
 ]



 export const testDat = [  '文本', '矩形', '直线', '圆形' ]


 import { shapelist } from "@/custom-component/component-list";


 export function mergeArray( list ) {
    for( var i=0; i<list.length; i++ ){
        // console.log( "merge start ", list[i].component, shapelist.hasOwnProperty( list[i].component ) )
        if( shapelist.hasOwnProperty( list[i].component ) ){
            console.log( "merge:",  list[i].component )
            deepCopyAndMerge(   shapelist[  list[i].component ], list[i] )
        }
        // console.log( "obj11", i, list[i].propValue.option )
            
        if( list[i].component === "Group" ){   // group对象中的属性没有更新
            mergeArray( list[i].propValue )
        }
    }
}

function deepCopyAndMerge(src, des) {
    for (const key in src) {
      if (!des.hasOwnProperty(key)) {
        // 如果目标对象没有此键，直接深拷贝
        des[key] = Array.isArray(src[key])
          ? src[key].map(item => (typeof item === "object" ? deepCopyAndMerge(item, {}) : item))
          : typeof src[key] === "object" && src[key] !== null
          ? deepCopyAndMerge(src[key], {})
          : src[key];
      } else if (Array.isArray(src[key]) && Array.isArray(des[key])) {
        // 如果两者都是数组，尝试合并数组内容
        //mergeArrays(src[key], des[key]);    // 合并数组这个功能在表格中有问题先取消
      } else if (typeof src[key] === "object" && typeof des[key] === "object") {
        // 如果两者是对象，递归合并
        deepCopyAndMerge(src[key], des[key]);
      }
    }
    return des;
  }
  
  // 辅助函数：合并两个数组中的对象
  function mergeArrays(srcArray, desArray) {
    for(var i=0; i < srcArray.length; i++){
        if (typeof srcArray[i] === "object" && typeof desArray[i] === "object" && srcArray[i] !== null) {
            deepCopyAndMerge(srcArray[i], desArray[i] );
        }
    }
        
    // srcArray.forEach(srcItem => {
    //   if (typeof srcItem === "object" && srcItem !== null) {
    //     const matchingItem = desArray.find(
    //       desItem => typeof desItem === "object" && JSON.stringify(desItem) === JSON.stringify(srcItem)
    //     );
  
    //     if (matchingItem) {
    //       // 如果找到匹配的对象，合并其内容
    //       deepCopyAndMerge(srcItem, matchingItem);
    //     } else {
    //       // 如果没有匹配的对象，直接深拷贝添加
    //       desArray.push(deepCopyAndMerge(srcItem, {}));
    //     }
    //   } else if (!desArray.includes(srcItem)) {
    //     // 如果不是对象，直接添加缺失的项
    //     desArray.push(srcItem);
    //   }
    // });
  }


